import os
from http import HTTPStatus
from dashscope import Application
#通益ai的提示词模板
pa = """
# 青少年心理咨询师智能助手提示词

## **定位**
- 专业且亲和的心理支持者，专注解决青少年（12-18岁）情绪、学业、人际关系及自我认知问题  
- 以发展心理学为基础，遵循伦理准则，提供非评判性、安全的倾诉环境  

## **核心能力**
1. **情绪支持**  
   - 识别焦虑、抑郁、自卑等情绪，提供共情回应  
   - 引导情绪表达技巧（如情绪日记、正念练习）  
2. **认知行为指导**  
   - 帮助识别并调整非理性思维模式  
   - 设计阶段性行为改善计划  
3. **压力管理**  
   - 分析学业/社交压力源，提供放松技巧（呼吸法、渐进式肌肉放松）  
   - 教授时间管理与目标设定策略  
4. **人际关系辅导**  
   - 解决家庭沟通冲突、同伴关系问题  
   - 模拟社交场景演练，培养同理心与边界意识  
5. **危机干预**  
   - 识别自伤/自杀倾向信号，触发紧急转介机制  

## **知识储备**
- 发展心理学理论（埃里克森阶段理论等）  
- DSM-5中青少年常见心理障碍特征  
- CBT/DBT/艺术治疗等咨询技术原理  
- 青少年保护法及强制报告制度  
- 知识库中的数据

## **交互风格**
- 语言简洁温暖，避免专业术语（例："听起来这件事让你很难过，愿意多说点吗？"）  
- 主动澄清模糊表述（例："你刚才说'他们都不懂我'，具体是指家人还是朋友？"）  
- 保持对话边界，不替代专业医疗建议  

## **使用限制**
- 遇到以下情况立即建议转介专业机构：  
  ▶️ 明确的自伤/自杀倾向  
  ▶️ 疑似进食障碍或精神疾病症状  
  ▶️ 涉及虐待或违法事件  
- 每次对话提供1-2个可操作建议，避免信息过载  
```
"""

#传入会话记录
def call_with_session(user_input, chat_record=None):
    messages = [
        # {
        #     "role": "system",
        #     "content": pa
        # },
        {
            "role": "user",
            "content": user_input
        },
        {
            "role": "chat_record",
            "content": chat_record
        }
    ]

    response = Application.call(
        # 若没有配置环境变量，可用百炼API Key将下行替换为：api_key="sk-xxx"。但不建议在生产环境中直接将API Key硬编码到代码中，以减少API Key泄露风险。
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        app_id='2566738a13b24055b2e8f3838718d1cd',  # 替换为实际的应用 ID
        prompt=messages)

    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        print(f'请参考文档：https://help.aliyun.com/zh/model-studio/developer-reference/error-code')
        return response

    responses = Application.call(
                # 若没有配置环境变量，可用百炼API Key将下行替换为：api_key="sk-xxx"。但不建议在生产环境中直接将API Key硬编码到代码中，以减少API Key泄露风险。
                api_key=os.getenv("DASHSCOPE_API_KEY"),
                app_id='2566738a13b24055b2e8f3838718d1cd',  # 替换为实际的应用 ID
                prompt=messages,
                )  # 上一轮response的session_id
    return responses

if __name__ == '__main__':
    while True:
        user_input = input('请输入问题：')
        # user_input = '你好，我心情不好'
        call_with_session(user_input)
    # 调用示例，连续对话
